let UserManager = require("../manager/UserManager.class");
/*
* 游戏控制器
* 1、所有和房间的网络消息都在RoomController处理
* 2、
* */
class RoomController{
    static getInstance(){
        if (!RoomController._instance) {
            RoomController._instance = new RoomController();
        }
        return RoomController._instance;
    }
    constructor(){
    }
    /*
    * 同步数据，针对于单个玩家
    * */
    synchronous(data){
        let user = UserManager.getInstance().getUserByUid(data.uid);
        if (user){
            user.sendMessage(data.messageObj);
        }
    }
    /*
    * 广播数据，针对于同一房间中所有玩家
    * players：需要广播的玩家
    * data: 需要广播的数据（所有玩家的数据一致）
    * */
    broadcast(players, message){
        for (let i = 0; i < players.length; i++){
            let user = UserManager.getInstance().getUserByUid(players[i].getUid());
            if (user) {
                user.sendMessage(message);
            }
        }
    }
    /*
     * 广播数据，针对于同一房间中所有玩家
     * messageArr: 需要广播的数据（消息数组，遍历分发）
     * */
    broadcastArr(msgObj){
        console.log(JSON.stringify(msgObj));
        for (let key in msgObj){
            let user = UserManager.getInstance().getUserByUid(key);
            if (user) {
                user.sendMessage(msgObj[key]);
            }
        }
    }
    destroyRoomById(roomId){
        // console.log(RoomManager);
        // console.log(UserManager);
        // RoomManager.getInstance().removeRoom(roomId);
    }
}
RoomController._instance = null;
module.exports = RoomController;